package org.dromara.bclt.model;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.Version;

import java.io.Serial;
import java.util.Date;

public class ReferenceLog {
    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @TableId(value = "id")
    private Long id;

    /**
     * 设备id
     */
    private Long deviceId;

    /**
     * 触发的规则ids
     */
    private String ruleIds;

    /**
     * 推送内容
     */
    private String content;

    /**
     * 超过X天未学习
     */
    private Long unlearnOverDays;

    /**
     * 课程更新后X小时后开始学习
     */
    private Long learnStartAfterUpdateHour;

    /**
     * 课程更新后第X天完成学习
     */
    private Long learnCompletionAfterUpdateDay;

    /**
     * 课程学习完成数量为X
     */
    private Long courseCompletionNumber;

    /**
     * 课程学习未完成数量X
     */
    private Long courseUncompletionNumber;

    /**
     * 患者当周课程学习进度
     */
    private Long weekLearnCompletionRateBef0;

    /**
     * 患者APP使用为第X周
     */
    private Long appRegisterDuration;

    /**
     * 6天前忽略运动提醒次数
     */
    private Long dayInterfereIgnoreTimesBef6;

    /**
     * 5天前忽略运动提醒次数
     */
    private Long dayInterfereIgnoreTimesBef5;

    /**
     * 4天前忽略运动提醒次数
     */
    private Long dayInterfereIgnoreTimesBef4;

    /**
     * 3天前忽略运动提醒次数
     */
    private Long dayInterfereIgnoreTimesBef3;

    /**
     * 2天前忽略运动提醒次数
     */
    private Long dayInterfereIgnoreTimesBef2;

    /**
     * 1天前忽略运动提醒次数
     */
    private Long dayInterfereIgnoreTimesBef1;

    /**
     * 当日忽略运动提醒次数
     */
    private Long dayInterfereIgnoreTimesBef0;

    /**
     * 6日前干预提醒响应率为X
     */
    private Long dayInterfereResponsivityBef6;

    /**
     * 5日前干预提醒响应率为X
     */
    private Long dayInterfereResponsivityBef5;

    /**
     * 4日前干预提醒响应率为X
     */
    private Long dayInterfereResponsivityBef4;

    /**
     * 3日前干预提醒响应率为X
     */
    private Long dayInterfereResponsivityBef3;

    /**
     * 2日前干预提醒响应率为X
     */
    private Long dayInterfereResponsivityBef2;

    /**
     * 1日前干预提醒响应率为X
     */
    private Long dayInterfereResponsivityBef1;

    /**
     * 当日干预提醒响应率为X
     */
    private Long dayInterfereResponsivityBef0;

    /**
     * 3周前运动完成率
     */
    private Long weekExerciseCompletionRateBef3;

    /**
     * 2周前运动完成率
     */
    private Long weekExerciseCompletionRateBef2;

    /**
     * 1周前运动完成率
     */
    private Long weekExerciseCompletionRateBef1;

    /**
     * 当周前运动完成率
     */
    private Long weekExerciseCompletionRateBef0;

    /**
     * 6天前是否提前完成当日运动计划
     */
    private Long dayExercisePlanDoneBef6;

    /**
     * 5天前是否提前完成当日运动计划
     */
    private Long dayExercisePlanDoneBef5;

    /**
     * 4天前是否提前完成当日运动计划
     */
    private Long dayExercisePlanDoneBef4;

    /**
     * 3天前是否提前完成当日运动计划
     */
    private Long dayExercisePlanDoneBef3;

    /**
     * 2天前是否提前完成当日运动计划
     */
    private Long dayExercisePlanDoneBef2;

    /**
     * 1天前是否提前完成当日运动计划
     */
    private Long dayExercisePlanDoneBef1;

    /**
     * 当日是否提前完成当日运动计划
     */
    private Long dayExercisePlanDoneBef0;

    /**
     * 在两次决策时间点内学习X分钟
     */
    private Long betweenDecisionLearnDuration;

    /**
     * 在两次决策时间点内运动X分钟
     */
    private Long betweenDecisionExerciseDuration;

    /**
     * 上午9-12点完成当日运动量达标度
     */
    private Long day_am_exercise_completion_bef0;

    /**
     * 当日低等强度运动运动时长X
     */
    private Long dayLowExerciseDurationBef0;

    /**
     * 当日中等强度运动运动时长X
     */
    private Long dayMidExerciseDurationBef0;

    /**
     * 当日高等强度运动运动时长X
     */
    private Long dayHighExerciseDurationBef0;

    /**
     * 6天前上午活动时长X
     */
    private Long dayAmExerciseDurationBef6;

    /**
     * 6天前下午活动时长X
     */
    private Long dayPmExerciseDurationBef6;

    /**
     * 5天前上午活动时长X
     */
    private Long dayAmExerciseDurationBef5;

    /**
     * 5天前下午活动时长X
     */
    private Long dayPmExerciseDurationBef5;

    /**
     * 4天前上午活动时长X
     */
    private Long dayAmExerciseDurationBef4;

    /**
     * 4天前下午活动时长X
     */
    private Long dayPmExerciseDurationBef4;

    /**
     * 3天前上午活动时长X
     */
    private Long dayAmExerciseDurationBef3;

    /**
     * 3天前下午活动时长X
     */
    private Long dayPmExerciseDurationBef3;

    /**
     * 2天前上午活动时长X
     */
    private Long dayAmExerciseDurationBef2;

    /**
     * 2天前下午活动时长X
     */
    private Long dayPmExerciseDurationBef2;

    /**
     * 1天前上午活动时长X
     */
    private Long dayAmExerciseDurationBef1;

    /**
     * 1天前下午活动时长X
     */
    private Long dayPmExerciseDurationBef1;

    /**
     * 当日上午活动时长X
     */
    private Long dayAmExerciseDurationBef0;

    /**
     * 当日下午活动时长X
     */
    private Long dayPmExerciseDurationBef0;

    /**
     * 6天前步数
     */
    private Long dayStepBef6;

    /**
     * 5天前步数
     */
    private Long dayStepBef5;

    /**
     * 4天前步数
     */
    private Long dayStepBef4;

    /**
     * 3天前步数
     */
    private Long dayStepBef3;

    /**
     * 2天前步数
     */
    private Long dayStepBef2;

    /**
     * 1天前步数
     */
    private Long dayStepBef1;

    /**
     * 当日步数
     */
    private Long dayStepBef0;

    /**
     * 在提醒后X分钟内开始运动
     */
    private Long dayExerciseCompletionRateBef6;

    /**
     * 5天前运动目标完成率
     */
    private Long dayExerciseCompletionRateBef5;

    /**
     * 4天前运动目标完成率
     */
    private Long dayExerciseCompletionRateBef4;

    /**
     * 3天前运动目标完成率
     */
    private Long dayExerciseCompletionRateBef3;

    /**
     * 2天前运动目标完成率
     */
    private Long dayExerciseCompletionRateBef2;

    /**
     * 1天前运动目标完成率
     */
    private Long dayExerciseCompletionRateBef1;

    /**
     * 当日运动目标完成率
     */
    private Long dayExerciseCompletionRateBef0;

    /**
     * 在提醒后X分钟内开始运动
     */
    private Long exerciseStartAfterInterfereDuration;

    /**
     * 当日运动开始时间
     */
    private Date dayExerciseStartTime;

    /**
     * 超过X天运动量未达标
     */
    private Long exerciseUncompletionOverDays;

    /**
     * 版本
     */
    @Version
    private Long version;

    /**
     * 删除标志
     */
    @TableLogic
    private Long delFlag;
}
